package rothag.views.gamestep;

import java.awt.Color;
import java.awt.Graphics;
import java.io.IOException;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import rothag.controller.MainController;
import rothag.graphics.*;
import rothag.views.JPanelBase;
import rothag.graphics.roulette.CompteurTournantJPanel;

/**
 *
 * @author Gaetan
 */
public class ScoreJPanel extends JPanelBase {

    private ImageIcon image;
    private CompteurTournantJPanel compteur;
    private JLabel signe;

    /** Creates new form ScoreJPanel */
    public ScoreJPanel(MainController controller) throws IOException {
        super(controller);

        // Récupération de l'image
        image = GraphicsHelper.getImageIcon(GraphicsParameters.pathCadreScore, this);
        if (image.getIconHeight() == -1) {
            GraphicsHelper.afficherErreur("Erreur", "Erreur lors de l'ouverture du fichier image : " + GraphicsParameters.pathCadreScore, this).setVisible(true);
            System.exit(1);
        }
        setBackground(Color.black);

        // Définition de la taille
        hauteur = image.getIconHeight();
        largeur = image.getIconWidth();

        int nbRoulette = 4;
        int tailleRoulette = 37;

        signe = new JLabel("");
        signe.setHorizontalAlignment(SwingConstants.CENTER);
        signe.setVerticalAlignment(SwingConstants.CENTER);
        signe.setFont(GraphicsHelper.getFont(38, "bold"));
        signe.setForeground(Color.white);
        signe.setBounds(6, 20, 43, 43);
        add(signe);

        compteur = new CompteurTournantJPanel(nbRoulette, tailleRoulette);
        compteur.setBounds((largeur - tailleRoulette * nbRoulette) / 2 + 19, hauteur - tailleRoulette - 9, nbRoulette * tailleRoulette, tailleRoulette);
        add(compteur);

        JLabel label = new JLabel("Score : ");
        label.setHorizontalAlignment(SwingConstants.CENTER);
        label.setVerticalAlignment(SwingConstants.BOTTOM);
        label.setFont(GraphicsHelper.getFont(13, "bold"));
        label.setForeground(Color.white);
        label.setBounds(0, 0, largeur, compteur.getBounds().y);
        add(label);
    }

    @Override
    public void paint(Graphics g) {
        if (image != null) {
            JLabel label = new JLabel(image);
            label.setBounds(0, 0, largeur, hauteur);
            add(label);
        }
        super.paint(g);
    }

    public void setScore(int valeur) {
        if (compteur != null) {
            compteur.setValue(Integer.toString(Math.abs(valeur)));
            if (valeur > 0) {
                signe.setText("+");
            } else if (valeur < 0) {
                signe.setText("-");
            } else {
                signe.setText("");
            }
        }
    }
}
